export function convertTimeToSeconds (timeString: string) {
  // 去除字符串两端的空格
  timeString = timeString.trim()

  // 尝试匹配不同的时间格式
  let match
  if ((match = /^(\d{1,2}):(\d{1,2}):(\d{1,2})$/.exec(timeString))) {
    // HH:MM:SS 格式
    return parseInt(match[1], 10) * 3600 + parseInt(match[2], 10) * 60 +
      parseInt(match[3], 10)
  } else if ((match = /^(\d{1,2}):(\d{1,2})$/.exec(timeString))) {
    // MM:SS 格式
    return parseInt(match[1], 10) * 60 + parseInt(match[2], 10)
  } else if ((match = /^\d+$/.exec(timeString))) {
    // SS 或 MM（作为分钟输入） 格式
    const secondsOrMinutes = parseInt(match[0], 10)
    // 假设大于59的数值为分钟数
    return secondsOrMinutes > 59 ? secondsOrMinutes * 60 : secondsOrMinutes
  }

  // 如果无法匹配任何格式，则抛出错误
  return 0
}


export function formatSeconds(secondsInput: number) {
  const seconds = Math.floor(secondsInput)
  // 确保输入是数字
  if (typeof seconds !== 'number' || isNaN(seconds) || seconds < 0) {
    throw new Error('Invalid input. Please provide a non-negative number of seconds.');
  }

  // 计算小时、分钟和秒
  const hours = Math.floor(seconds / 3600);
  const minutes = Math.floor((seconds % 3600) / 60);
  const secs = seconds % 60;

  // 根据小时数决定输出格式
  if (hours > 0) {
    // 时分秒格式
    return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
  } else if (minutes > 0) {
    // 分秒格式
    return `${minutes.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`;
  } else {
    // 秒格式
    return `00:${secs.toString()}`;
  }
}
